package com.xinqi.modules.exam.paper.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xinqi.common.mybatis.data.repo.SuperMapper;
import com.xinqi.modules.exam.paper.domain.CourseExamPaperEntity;
import com.xinqi.modules.exam.paper.dto.req.CourseExamPaperQueryDTO;
import com.xinqi.modules.exam.paper.dto.rsp.CourseExamPaperResultDTO;
import com.xinqi.modules.exam.paper.dto.rsp.CourseExamPaperStatusNumDTO;
import com.xinqi.modules.exam.paper.dto.rsp.CourseExamPaperStudentDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 课程测评数据层
 *
 * @author: linkai
 * @date: 2023/07/02
 */
@Mapper
public interface CourseExamPaperMapper extends SuperMapper<CourseExamPaperEntity> {

    Page<CourseExamPaperResultDTO> findPage(Page<Object> page, @Param("dto") CourseExamPaperQueryDTO query);

    List<CourseExamPaperResultDTO> findList(@Param("dto") CourseExamPaperQueryDTO query);

    List<CourseExamPaperStudentDTO> findStudentList(@Param("dto") CourseExamPaperQueryDTO query);

    Page<CourseExamPaperStudentDTO> pageStudentList(Page<Object> page, @Param("dto") CourseExamPaperQueryDTO dto);

    CourseExamPaperStatusNumDTO findStatusNum(@Param("classId") Long classId);

    CourseExamPaperStatusNumDTO findStudentStatusNum(@Param("classId") Long classId, @Param("studentId") Long studentId);
}
